package com.emm.yixun.customer.service;
import java.util.List;

import javax.jws.WebService;

import com.emm.yixun.common.app.CustomerTagListReqDto;
import com.emm.yixun.common.app.CustomerTagListResDto;
import com.emm.yixun.common.app.servletentity.CustTaglistRes;
import com.emm.yixun.common.model.CustTag;
import com.emm.yixun.common.model.CustTagInfo;
import com.emm.yixun.common.model.dto.CustTagDto;
import com.emm.yixun.common.page.Page;
import com.emm.yixun.common.response.Response;
import com.emm.yixun.common.response.ResponseList;
@WebService
public interface CustTagServiceFacade{
     	/**
	    *新增
	    */
		Response<CustTagDto> save(CustTagDto dto);
		
		/**
		*修改,当selective=true时修改非空列,当selective=false修改所有列
		*/
		Response<Integer> updateByPrimaryKey(CustTagDto dto,Boolean selective);
		
		/**
		 *逻辑删除
		 */
		Response<Integer> deleteByPrimaryKey(Long id);
		
		/**
		 *主键查询
		 */
		Response<CustTag> findById(Long id);
		
		/**
		 *根据dto查询记录
		 */
		ResponseList<CustTag> findByDto(CustTagDto dto);
		/**
		 *根据dto以及分页参数查询记录
		 */
		Page<CustTagInfo> findPageByDto(CustTagDto dto,Integer begin,Integer row);
		
		/**
		 *新增
		 */
        Response<CustTagDto> saveCusTag(CustTagDto dto, String json);
        
        /**
         *修改
         */
         Response<Integer> editCusTag(CustTagDto dto, String json);
         
         /**
          *根据dto以及分页参数查询记录
          */
         Page<CustTagInfo> getCusTagInfoPage(CustTagDto dto,Integer begin,Integer row);
         
         /**
          *“回来了社区”客户标签全量查询接口
          */
         CustomerTagListResDto getCusTagListPage(CustomerTagListReqDto reqDto);
         
         /**
          *“回来了社区”客户问卷全量查询接口
          */
         CustomerTagListResDto getCustomerQuestionnairePage(CustomerTagListReqDto reqDto);
         
         /**
          * 保存或修改客户标签
          * @param dto
          * @param jsonArray
          * @param ids 已保存的标签，用于删除或修改标识
          * @param type 1 多选  3 单选  5 文本
          * @return
          */
         Response<CustTagDto> saveOrEditCusTag(CustTagDto dto, String jsonArray, String ids, String type);
         
         /**
          * 获取问题答案
          * @param projectId
          * @param questionnaireId
          * @return
          */
         List<CustTaglistRes> getCustomerAnswerList(Long projectId, Long questionnaireId);
}
